package com.jinke.api.modules.third.shippo.model.response;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

import java.util.List;

/**
 * @projectName:
 * @title: ShippoLabelResponse
 * @description: 根据transactionId拿到面单返回体
 * @see:
 * @author: hhp
 * @version: 1.0.0
 * @createTime: 2024/8/13 11:01
 */
@Data
public class ShippoLabelResponse {
    @JSONField(name = "commercial_invoice_url")
    private String commercialInvoiceUrl;
    @JSONField(name = "created_by")
    private CreatedBy createdBy;
    private String eta;
    @JSONField(name = "label_file_type")
    private String labelFileType;
    @JSONField(name = "label_url")
    private String labelUrl;
    private List<Messages> messages;
    private String metadata;
    @JSONField(name = "object_created")
    private String objectCreated;
    @JSONField(name = "object_id")
    private String objectId;
    @JSONField(name = "object_owner")
    private String objectOwner;
    @JSONField(name = "object_state")
    private String objectState;
    @JSONField(name = "object_status")
    private String objectStatus;
    @JSONField(name = "object_updated")
    private String objectUpdated;
    @JSONField(name = "pickup_date")
    private String pickupDate;
    private String parcel;
    @JSONField(name = "qr_code_url")
    private String qrCodeUrl;
    private String rate;
    private String status;
    private Boolean test;
    @JSONField(name = "was_test")
    private Boolean wasTest;
    @JSONField(name = "notification_email_from")
    private Boolean notificationEmailFrom;
    @JSONField(name = "notification_email_to")
    private Boolean notificationEmailTo;
    @JSONField(name = "tracking_number")
    private String trackingNumber;
    @JSONField(name = "notification_email_other")
    private String notificationEmailOther;
    @JSONField(name = "tracking_status")
    private String trackingStatus;
    @JSONField(name = "tracking_url_provider")
    private String trackingUrlProvider;
    @JSONField(name = "customs_note")
    private String customsNote;
    @JSONField(name = "submission_note")
    private String submissionNote;
    /*@JSONField(name = "tracking_history")
    private String trackingHistory;*/


    @Data
    public static class CreatedBy {
        @JSONField(name = "first_name")
        private String firstName;
        @JSONField(name = "last_name")
        private String lastName;
        private String username;
    }

    @Data
    public static class Messages {
        private String source;
        private String code;
        private String text;
    }

    /*@Data
    public static class Rate {
        private BigDecimal amount;
        @JSONField(name = "amount_local")
        private BigDecimal amountLocal;
        private String currency;
        @JSONField(name = "currency_local")
        private String currencyLocal;
        @JSONField(name = "object_id")
        private String objectId;
        private String provider;
        @JSONField(name = "carrier_account")
        private String carrierAccount;
        @JSONField(name = "servicelevel_name")
        private String serviceLevelName;
        @JSONField(name = "servicelevel_token")
        private String serviceLevelToken;
    }*/
}
